package com.yy.wga.mp.module.promoter.service;

import com.yy.wga.mp.module.goods.api.request.product.GetHeadSupplierProductDetailReq;
import com.yy.wga.mp.module.goods.api.request.product.GetHeadSupplierProductListReq;
import com.yy.wga.mp.module.goods.api.request.product.GetProductPromotionInfoReq;
import com.yy.wga.mp.module.goods.api.request.product.GetPromoteProductDetailReq;
import com.yy.wga.mp.module.goods.api.request.product.GetPromoteProductListReq;
import com.yy.wga.mp.module.goods.api.response.product.GetHeadSupplierProductDetailDTO;
import com.yy.wga.mp.module.goods.api.response.product.GetHeadSupplierProductListDTO;
import com.yy.wga.mp.module.goods.api.response.product.ProductPromotionInfoLinkDTO;
import com.yy.wga.mp.module.goods.api.response.product.ProductPromotionQrcodeInfoDTO;
import com.yy.wga.mp.module.goods.api.response.product.PromoteProductDetailDTO;
import com.yy.wga.mp.module.goods.api.response.product.PromoteProductListDTO;
import com.yy.wga.mp.module.goods.api.response.product.PromoterSingleProductPromotionInfoDTO;
import com.yy.wga.mp.module.goods.api.request.product.GetHeadSupplierProductDetailReq;
import com.yy.wga.mp.module.goods.api.request.product.GetHeadSupplierProductListReq;
import com.yy.wga.mp.module.goods.api.request.product.GetProductPromotionInfoReq;
import com.yy.wga.mp.module.goods.api.request.product.GetPromoteProductDetailReq;
import com.yy.wga.mp.module.goods.api.request.product.GetPromoteProductListReq;
import com.yy.wga.mp.module.goods.api.response.product.GetHeadSupplierProductDetailDTO;
import com.yy.wga.mp.module.goods.api.response.product.GetHeadSupplierProductListDTO;
import com.yy.wga.mp.module.goods.api.response.product.ProductPromotionInfoLinkDTO;
import com.yy.wga.mp.module.goods.api.response.product.ProductPromotionQrcodeInfoDTO;
import com.yy.wga.mp.module.goods.api.response.product.PromoteProductDetailDTO;
import com.yy.wga.mp.module.goods.api.response.product.PromoteProductListDTO;
import com.yy.wga.mp.module.goods.api.response.product.PromoterSingleProductPromotionInfoDTO;
import com.yy.wga.module.goods.api.request.product.*;
import com.yy.wga.module.goods.api.response.product.*;
import com.yy.wga.mp.module.goods.api.request.product.GetHeadSupplierProductDetailReq;
import com.yy.wga.mp.module.goods.api.request.product.GetHeadSupplierProductListReq;
import com.yy.wga.mp.module.goods.api.request.product.GetProductPromotionInfoReq;
import com.yy.wga.mp.module.goods.api.request.product.GetPromoteProductDetailReq;
import com.yy.wga.mp.module.goods.api.request.product.GetPromoteProductListReq;
import com.yy.wga.mp.module.goods.api.response.product.GetHeadSupplierProductDetailDTO;
import com.yy.wga.mp.module.goods.api.response.product.GetHeadSupplierProductListDTO;
import com.yy.wga.mp.module.goods.api.response.product.ProductPromotionInfoLinkDTO;
import com.yy.wga.mp.module.goods.api.response.product.ProductPromotionQrcodeInfoDTO;
import com.yy.wga.mp.module.goods.api.response.product.PromoteProductDetailDTO;
import com.yy.wga.mp.module.goods.api.response.product.PromoteProductListDTO;
import com.yy.wga.mp.module.goods.api.response.product.PromoterSingleProductPromotionInfoDTO;

public interface IProductService {

    /**
     * 获取商品列表
     *
     * @param getPromoteProductListReq getPromoteProductListReq
     * @return PromoteProductListResp PromoteProductListResp
     */
    PromoteProductListDTO getPromoteProductList(GetPromoteProductListReq getPromoteProductListReq);


    /**
     * 获取商品详情信息
     *
     * @param getPromoteProductListReq getPromoteProductListReq
     * @return PromoteProductDetailResp PromoteProductDetailResp
     */
    PromoteProductDetailDTO getPromoteProductDetail(GetPromoteProductDetailReq getPromoteProductListReq);


    /**
     * 生成推广链接
     *
     * @param getPromoteProductListReq getPromoteProductListReq
     * @return ProductPromotionInfoResp ProductPromotionInfoResp
     */
    ProductPromotionInfoLinkDTO getProductPromotionLinkInfo(GetProductPromotionInfoReq getPromoteProductListReq);

    /**
     * 生成推广链接
     *
     * @param getPromoteProductListReq getPromoteProductListReq
     * @return ProductPromotionInfoResp ProductPromotionInfoResp
     */
    ProductPromotionQrcodeInfoDTO getProductPromotionQrcodeInfo(GetProductPromotionInfoReq getPromoteProductListReq);

    /**
     * 生成推广链接
     *
     * @param getPromoteProductListReq getPromoteProductListReq
     * @return PromoterSingleProductPromotionInfoDTO ProductPromotionInfoResp
     */
    PromoterSingleProductPromotionInfoDTO getPromoterSingleProductPromotionInfo(GetProductPromotionInfoReq getPromoteProductListReq);


    /**
     * 获取合作商品
     *
     * @param getPromoteProductListReq getPromoteProductListReq
     * @return PromoterSingleProductPromotionInfoDTO ProductPromotionInfoResp
     */
    GetHeadSupplierProductDetailDTO getHeadSupplierProductDetail(GetHeadSupplierProductDetailReq getPromoteProductListReq);

    /**
     * 获取合作商品详情
     *
     * @param getHeadSupplierProductListReq getHeadSupplierProductListReq
     * @return PromoterSingleProductPromotionInfoDTO ProductPromotionInfoResp
     */
    GetHeadSupplierProductListDTO getHeadSupplierProductList(GetHeadSupplierProductListReq getHeadSupplierProductListReq);
}
